home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 30
/
Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso
/
Aminet
/
dev
/
lang
/
SmallEiffel.lha
/
SmallEiffel
/
bin_c
/
short19.c
< prev
next >
Wrap
C/C++ Source or Header
|
1998-12-22
|
53KB
|
2,348 lines
/*
-- ANSI C code generated by :
-- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79) --
-- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
-- Dominique COLNET and Suzanne COLLIN - colnet@loria.fr --
-- http://www.loria.fr/SmallEiffel --
*/
#include "short.h"
/*No:CALL_INFIX_AND.feature_name*/
T0* r109start_position(T109* C){
T0* R=NULL;
R=((T125*)((C)->_feature_name/*12*/))->_start_position/*8*/;
return R;
}
T0* r109add_comment(T109* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
else{
{T218*n=malloc(sizeof(*n));
*n=M218;
r218make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
T2 r109to_integer(T109* C){
T2 R=0;
r109error(r109start_position(C),((T0*)ms12_45846));
return R;
}
T0* r109to_runnable(T109* C,T0* a1){
T0* R=NULL;
T0* _rf=NULL;
T0* _tbee=NULL;
T0* _at=NULL;
T0* _tt=NULL;
T0* _a=NULL;
T0* _t=NULL;
_t=r109runnable_expression((C)->_target/*4*/,a1);
_a=r109runnable_args((C)->_arguments/*8*/,a1);
_tt=X53result_type(_t);
_at=X53result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
/*[IF*/
/*AF*//*AE*/
/*FI]*/
_rf=r109run_feature_for(C,_t,a1);
/*[IF*/
if(((C)->_run_feature/*16*/)==((void*)(NULL))){
C->_target=_t;
C->_arguments=_a;
C->_run_feature=_rf;
r109run_feature_match(C,a1);
R=(T0*)C;
}
else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*8*/)))){
R=(T0*)C;
}
else{
{T109*n=malloc(sizeof(*n));
*n=M109;
r109with(n,_t,(C)->_feature_name/*12*/,_a,_rf,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_AND.fz_bad_argument*/
/*No:CALL_INFIX_AND.fz_iinaiv*/
T0* r109result_type(T109* C){
T0* R=NULL;
T0* _tla=NULL;
R=X312result_type((C)->_run_feature/*16*/);
/*[IF*/
if(X46is_like_current(R)){
R=/*X312current_type*/((T0*)((T326*)((C)->_run_feature/*16*/))->_current_type/*4*/);
}
else{
_tla=R;
if(NULL!=(_tla))switch(((T0*)_tla)->id) {
case 246:
break;
default:
_tla=NULL;
};/*[IF*/
if((_tla)!=((void*)(NULL))){
R=X46run_type(X53result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/));
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_AND.run_feature*/
T0* r109runnable_args(T0* a1,T0* a2){
T0* R=NULL;
R=r136to_runnable(((T136*)a1),a2);
/*[IF*/
if((R)==((void*)(NULL))){
r67add_position(r136start_position(((T136*)a1)));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms12_13065);
r67fatal_error((T67*)(oBC11eh),b1);
}/*]*/
}
/*FI]*/
return R;
}
void r109bracketed_short(T109* C){
r39hook_or((T39*)(oBC11short_print),((T0*)ms53_6792),((T0*)ms53_41));
r109short(C);
r39hook_or((T39*)(oBC11short_print),((T0*)ms53_8645),((T0*)ms53_42));
}
void r109with(T109* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
C->_run_feature=a4;
r109run_feature_match(C,a5);
}
/*No:CALL_INFIX_AND.fatal_error*/
void r109run_feature_match(T109* C,T0* a1){
r109run_feature_has_result(C);
r136match_with((T136*)((C)->_arguments/*8*/),(C)->_run_feature/*16*/,a1);
}
/*No:CALL_INFIX_AND.arguments*/
T0* r109runnable_expression(T0* a1,T0* a2){
T0* R=NULL;
R=X53to_runnable(a1,a2);
/*[IF*/
if((R)==((void*)(NULL))){
r67add_position(X53start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms105_16515);
r67fatal_error((T67*)(oBC11eh),b1);
}/*]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_AND.implicit_cast*/
/*No:CALL_INFIX_AND.arg1*/
void r109run_feature_has_result(T109* C){
/*[IF*/
if((X312result_type((C)->_run_feature/*16*/))==((void*)(NULL))){
r67add_position(X312start_position((C)->_run_feature/*16*/));
r67add_position(((T125*)((C)->_feature_name/*12*/))->_start_position/*8*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms104_53650);
r67fatal_error((T67*)(oBC11eh),b1);
}/*]*/
}
/*FI]*/
}
T0* r109run_feature_for(T109* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _rc=NULL;
_rc=X46run_class(X53result_type(a1));
R=r310get_rf(((T310*)_rc),a1,(C)->_feature_name/*12*/,a2);
return R;
}
/*No:CALL_INFIX_AND.target*/
void r109error(T0* a1,T0* a2){
r67add_position(a1);
r67error((T67*)(oBC11eh),a2);
}
/*No:CALL_INFIX_AND.precedence*/
void r109make(T109* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
{T125*n=malloc(sizeof(*n));
*n=M125;
r125make(n,r109operator(),a2);
C->_feature_name=(T0*)n;
}
{T136*n=malloc(sizeof(*n));
*n=M136;
/*[IRF3.3make_1*/((((T136*)(n)))->_first_one)=(a3);
/*]*/
C->_arguments=(T0*)n;
}
}
/*No:CALL_INFIX_AND.is_current*/
/*No:CALL_INFIX_AND.short_print_feature_name*/
/*No:CALL_INFIX_AND.is_void*/
/*No:CALL_INFIX_AND.us_and*/
T0* r109operator(void){
T0* R=NULL;
R=((T0*)ms13_939);
return R;
}
void r109short_target(T109* C){
r109bracketed_short(C);
/*[IRF3.6a_dot*/{T39* C1=(T39*)(oBC11short_print);
r39hook_or(C1,((T0*)ms39_999a),((T0*)ms12_47));
}/*]*/
}
void r109short(T109* C){
/*[IF*/
if((X53precedence((C)->_target/*4*/))==(13)){
X53short((C)->_target/*4*/);
/*[IRF3.6short_print_feature_name*/{T109* C1=C;
r39a_infix_name((T39*)(oBC11short_print),((T0*)ms102_7338),((T0*)ms102_33a),((T0*)ms102_7332),((T0*)ms102_33),(C1)->_feature_name/*12*/);
}/*]*/
/*[IF*/
if((X53precedence(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/))==(13)){
X53short(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
}
else if((5)>=(X53precedence(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/))){
X53bracketed_short(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
}
else{
X53short(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
}
/*FI]*/
}
else if((X53precedence((C)->_target/*4*/))<(5)){
X53bracketed_short((C)->_target/*4*/);
/*[IRF3.6short_print_feature_name*/{T109* C1=C;
r39a_infix_name((T39*)(oBC11short_print),((T0*)ms102_7338),((T0*)ms102_33a),((T0*)ms102_7332),((T0*)ms102_33),(C1)->_feature_name/*12*/);
}/*]*/
X53short(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
}
else{
X53short((C)->_target/*4*/);
/*[IRF3.6short_print_feature_name*/{T109* C1=C;
r39a_infix_name((T39*)(oBC11short_print),((T0*)ms102_7338),((T0*)ms102_33a),((T0*)ms102_7332),((T0*)ms102_33),(C1)->_feature_name/*12*/);
}/*]*/
X53short(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
}
/*FI]*/
}
/*No:CALL_INFIX_AND.atomic_precedence*/
T0* r155type_boolean(void){
if(fBC11type_boolean==0){
fBC11type_boolean=1;
{T252*n=malloc(sizeof(*n));
*n=M252;
r252make(n,NULL);
oBC11type_boolean=(T0*)n;
}
}
return oBC11type_boolean;}
/*No:E_TRUE.start_position*/
T0* r155to_string(void){
T0* R=NULL;
R=((T0*)ms12_1832);
return R;
}
T0* r155add_comment(T155* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
else{
{T218*n=malloc(sizeof(*n));
*n=M218;
r218make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
/*No:E_TRUE.to_integer*/
/*No:E_TRUE.to_runnable*/
/*No:E_TRUE.fz_iinaiv*/
/*No:E_TRUE.result_type*/
void r155error(T0* a1,T0* a2){
r67add_position(a1);
r67error((T67*)(oBC11eh),a2);
}
/*No:E_TRUE.precedence*/
/*No:E_TRUE.make*/
/*No:E_TRUE.fz_true*/
/*No:E_TRUE.bracketed_short*/
/*No:E_TRUE.is_current*/
/*No:E_TRUE.is_void*/
/*No:E_TRUE.short_target*/
/*No:E_TRUE.short*/
/*No:E_TRUE.atomic_precedence*/
T0* r133start_position(T133* C){
T0* R=NULL;
R=X53start_position((C)->_expression/*4*/);
return R;
}
T0* r133add_comment(T133* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
else{
{T218*n=malloc(sizeof(*n));
*n=M218;
r218make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
/*No:E_OLD.expression*/
T2 r133to_integer(T133* C){
T2 R=0;
r133error(r133start_position(C),((T0*)ms12_45846));
return R;
}
T0* r133to_runnable(T133* C,T0* a1){
T0* R=NULL;
T0* _exp=NULL;
/*[IF*/
if(((C)->_current_type/*8*/)==((void*)(NULL))){
C->_current_type=a1;
_exp=X53to_runnable((C)->_expression/*4*/,a1);
/*[IF*/
if((_exp)==((void*)(NULL))){
r133error(r133start_position(C),((T0*)ms133_24605));
}
else{
C->_expression=_exp;
}
/*FI]*/
R=(T0*)C;
}
else{
{T133*n=malloc(sizeof(*n));
*n=M133;
/*[IRF3.3make*/((((T133*)(n)))->_expression)=((C)->_expression/*4*/);
/*]*/
R=(T0*)n;
}
R=r133to_runnable(((T133*)R),a1);
}
/*FI]*/
return R;
}
/*No:E_OLD.current_type*/
/*No:E_OLD.fz_iinaiv*/
T0* r133result_type(T133* C){
T0* R=NULL;
R=X53result_type((C)->_expression/*4*/);
return R;
}
void r133error(T0* a1,T0* a2){
r67add_position(a1);
r67error((T67*)(oBC11eh),a2);
}
/*No:E_OLD.precedence*/
/*No:E_OLD.make*/
void r133bracketed_short(T133* C){
r39hook_or((T39*)(oBC11short_print),((T0*)ms53_6792),((T0*)ms53_41));
r133short(C);
r39hook_or((T39*)(oBC11short_print),((T0*)ms53_8645),((T0*)ms53_42));
}
/*No:E_OLD.is_current*/
/*No:E_OLD.is_void*/
void r133short_target(T133* C){
r133bracketed_short(C);
/*[IRF3.6a_dot*/{T39* C1=(T39*)(oBC11short_print);
r39hook_or(C1,((T0*)ms39_999a),((T0*)ms12_47));
}/*]*/
}
void r133short(T133* C){
r39hook_or((T39*)(oBC11short_print),((T0*)ms133_975),((T0*)ms133_1444));
X53short((C)->_expression/*4*/);
}
/*No:WRITABLE_ATTRIBUTE.base_class*/
T0* r300start_position(T300* C){
T0* R=NULL;
R=X77start_position(/*(IRF4.6first_name*/r79item(((T79*)((C)->_names/*8*/)),1)/*)*/);
return R;
}
T6 r300is_merge_with(T300* C,T0* a1,T0* a2){
T6 R=0;
R=1;
/*[IF*/
if(((C)->_result_type/*20*/)!=((void*)(X87result_type(a1)))){
/*[IF*/
if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X87result_type(a1))==((void*)(NULL)))){
R=0;
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X87arguments(a1)))){
/*[IF*/
{/*AT*/R=0;
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(R){
/*[IF*/
if(((C)->_result_type/*20*/)!=((void*)(NULL))){
R=X46is_a_in((C)->_result_type/*20*/,X87result_type(a1),a2);
}
/*FI]*/
/*[IF*/
if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
R=r175is_a_in((T175*)(/*(IRF4.1arguments*/NULL/*)*/),X87arguments(a1),a2);
}
/*FI]*/
/*[IF*/
if(!(R)){
R=1;
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
/*]*/
/*]*/
/*[IF*/
if(((C)->_result_type/*20*/)!=((void*)(NULL))){
R=X46is_a_in(X87result_type(a1),(C)->_result_type/*20*/,a2);
}
/*FI]*/
/*[IF*/
if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
R=r175is_a_in((T175*)(X87arguments(a1)),/*(IRF4.1arguments*/NULL/*)*/,a2);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(R){
r300merge_header_comments(C,a1);
}
/*FI]*/
return R;
}
/*No:WRITABLE_ATTRIBUTE.first_name*/
/*No:WRITABLE_ATTRIBUTE.em1*/
/*No:WRITABLE_ATTRIBUTE.set_isa_redefinition*/
/*No:WRITABLE_ATTRIBUTE.header_comment*/
/*No:WRITABLE_ATTRIBUTE.names*/
/*No:WRITABLE_ATTRIBUTE.result_type*/
/*No:WRITABLE_ATTRIBUTE.code_require*/
/*No:WRITABLE_ATTRIBUTE.make_e_feature*/
void r300add_into(T300* C,T0* a1){
T0* _fn=NULL;
T2 _i=0;
C->_base_class=r69base_class((T69*)(X77start_position(r79item((T79*)((C)->_names/*8*/),1))));
_i=1;
while (!((_i)>(r79count((T79*)((C)->_names/*8*/))))) {
_fn=r79item((T79*)((C)->_names/*8*/),_i);
/*[IF*/
if(r86has(((T86*)a1),X77to_key(_fn))){
_fn=/*X87first_name*/((T0*)/*(IRF4.6first_name*/r79item(((T79*)(((T187*)(r86at(((T86*)a1),X77to_key(_fn))))->_names/*8*/)),1)/*)*/);
r67add_position(X77start_position(_fn));
r67add_position(X77start_position(r79item((T79*)((C)->_names/*8*/),_i)));
r67error((T67*)(oBC11eh),((T0*)ms87_41905));
/*[IRF3.6append*/{T0* b1=X77to_string(_fn);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
r67error((T67*)(oBC11eh),((T0*)ms12_47));
}
else{
r86put(((T86*)a1),(T0*)C,X77to_key(_fn));
}
/*FI]*/
_i=(_i)+(1);
}
}
T6 r300can_hide(T300* C,T0* a1,T0* a2){
T6 R=0;
/*[IF*/
if(((C)->_result_type/*20*/)!=((void*)(X87result_type(a1)))){
/*[IF*/
if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X87result_type(a1))==((void*)(NULL)))){
r67add_position(X87start_position(a1));
r300error(r300start_position(C),((T0*)ms87_64647));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X87arguments(a1)))){
/*[IF*/
{/*AT*/r67add_position(X87start_position(a1));
r300error(r300start_position(C),((T0*)ms87_83182));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
/*[IF*/
if(((C)->_result_type/*20*/)!=((void*)(NULL))){
/*[IF*/
if(!(X46is_a_in((C)->_result_type/*20*/,X87result_type(a1),a2))){
/*[IRF3.6append*/{T0* b1=((T0*)ms87_54285);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X46run_time_mark((((T310*)a2))->_current_type/*0*/);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
r67error((T67*)(oBC11eh),((T0*)ms12_47));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*FI]*/
R=(/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0);
/*[IF*/
if(R){
r300merge_header_comments(C,a1);
}
/*FI]*/
return R;
}
/*No:WRITABLE_ATTRIBUTE.ensure_assertion*/
T0* r300try_to_undefine(T300* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _fn2=NULL;
r67add_position(X77start_position(a1));
_fn2=r79feature_name((T79*)((C)->_names/*8*/),X77to_key(a1));
/*[IF*/
if((_fn2)!=((void*)(NULL))){
X77undefine_in(_fn2,a2);
}
/*FI]*/
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
/*]*/
/*]*/
R=r300try_to_undefine_aux(C,a1,a2);
/*[IF*/
if((R)!=((void*)(NULL))){
/*X270set_clients*//*[IRF3.3set_clients*/((((T273*)(((T273*)R))))->_clients)=((C)->_clients/*16*/);
/*]*/
r300merge_header_comments(C,R);
}
else{
r22fatal_undefine(((T22*)a2),a1);
}
/*FI]*/
return R;
}
/*No:WRITABLE_ATTRIBUTE.is_deferred*/
/*No:WRITABLE_ATTRIBUTE.set_clients*/
/*No:WRITABLE_ATTRIBUTE.nb_errors*/
T0* r300to_run_feature(T300* C,T0* a1,T0* a2){
T0* R=NULL;
{T343*n=malloc(sizeof(*n));
*n=M343;
r343make(n,a1,a2,(T0*)C);
R=(T0*)n;
}
return R;
}
void r300merge_header_comments(T300* C,T0* a1){
/*[IF*/
if(((T59*)(oBC11small_eiffel))->_short_flag/*0*/){
/*[IF*/
if(((C)->_header_comment/*12*/)==((void*)(NULL))){
C->_header_comment=/*X87header_comment*/((T0*)(((T187*)a1))->_header_comment/*12*/);
}
else if((/*X87header_comment*/((T0*)(((T187*)a1))->_header_comment/*12*/))==((void*)(NULL))){
X87set_header_comment(a1,(C)->_header_comment/*12*/);
}
/*FI]*/
}
/*FI]*/
}
/*No:WRITABLE_ATTRIBUTE.arguments*/
/*No:WRITABLE_ATTRIBUTE.require_assertion*/
T0* r300try_to_undefine_aux(T300* C,T0* a1,T0* a2){
T0* R=NULL;
r67add_position(r300start_position(C));
r300error(X77start_position(a1),((T0*)ms189_99414));
r22fatal_undefine(((T22*)a2),a1);
return R;
}
/*No:WRITABLE_ATTRIBUTE.isa_redefinition*/
/*No:WRITABLE_ATTRIBUTE.fz_dot*/
void r300error(T0* a1,T0* a2){
r67add_position(a1);
r67error((T67*)(oBC11eh),a2);
}
void r300make(T300* C,T0* a1,T0* a2){
/*[IRF3.3make_e_feature*/((((T300*)(C)))->_names)=(a1);
/*]*/
C->_result_type=a2;
}
void r300collect_for(T2 a1){
T0* _er=NULL;
/*[IF*/
if((a1)==(1)){
_er=/*(IRF4.1require_assertion*/NULL/*)*/;
/*[IF*/
if((_er)!=((void*)(NULL))){
/*[IF*/
if(!(r315fast_has((T315*)(oBC87require_collector),_er))){
r315add_last((T315*)(oBC87require_collector),_er);
}
/*FI]*/
}
/*FI]*/
}
else{
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*FI]*/
}
/*No:WRITABLE_ATTRIBUTE.set_header_comment*/
/*No:WRITABLE_ATTRIBUTE.clients*/
/*No:RUN_FEATURE_4.use_current_state*/
/*No:RUN_FEATURE_4.rescue_compound*/
/*No:RUN_FEATURE_4.actuals_clients*/
/*No:RUN_FEATURE_4.arguments*/
void r335initialize(T335* C){
C->_arguments=((T289*)((C)->_base_feature/*32*/))->_arguments/*24*/;
C->_result_type=((T289*)((C)->_base_feature/*32*/))->_result_type/*56*/;
/*[IF*/
if(X46is_like_argument((C)->_result_type/*40*/)){
/*[IF*/
if(!(r175is_runnable((T175*)((C)->_arguments/*36*/),(C)->_current_type/*4*/))){
{T175*n=malloc(sizeof(*n));
*n=M175;
r175with(n,(C)->_arguments/*36*/,(C)->_current_type/*4*/);
C->_arguments=(T0*)n;
}
}
/*FI]*/
C->_result_type=X46to_runnable((C)->_result_type/*40*/,(C)->_current_type/*4*/);
}
else{
C->_result_type=X46to_runnable((C)->_result_type/*40*/,(C)->_current_type/*4*/);
/*[IF*/
if(((C)->_arguments/*36*/)!=((void*)(NULL))){
/*[IF*/
if(!(r175is_runnable((T175*)((C)->_arguments/*36*/),(C)->_current_type/*4*/))){
{T175*n=malloc(sizeof(*n));
*n=M175;
r175with(n,(C)->_arguments/*36*/,(C)->_current_type/*4*/);
C->_arguments=(T0*)n;
}
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
C->_local_vars=((T289*)((C)->_base_feature/*32*/))->_local_vars/*16*/;
/*[IF*/
if(((C)->_local_vars/*44*/)!=((void*)(NULL))){
C->_local_vars=r166to_runnable((T166*)((C)->_local_vars/*44*/),(C)->_current_type/*4*/);
}
/*FI]*/
C->_routine_body=((T289*)((C)->_base_feature/*32*/))->_routine_body/*44*/;
/*[IF*/
if(((C)->_routine_body/*48*/)!=((void*)(NULL))){
C->_routine_body=r204to_runnable((T204*)((C)->_routine_body/*48*/),(C)->_current_type/*4*/);
}
/*FI]*/
/*[IF*/
if(r73require_check((T73*)(oBC11run_control))){
C->_require_assertion=r289run_require((T0*)C);
}
/*FI]*/
/*[IF*/
if(r73ensure_check((T73*)(oBC11run_control))){
C->_ensure_assertion=r289run_ensure((T0*)C);
}
/*FI]*/
C->_rescue_compound=((T289*)((C)->_base_feature/*32*/))->_rescue_compound/*48*/;
/*[IF*/
if(((C)->_rescue_compound/*52*/)!=((void*)(NULL))){
/*[IRF3.3set_used*/((((T334*)((T334*)(oBC11exceptions_handler))))->_used)=(1);
/*]*/
C->_rescue_compound=r204to_runnable((T204*)((C)->_rescue_compound/*52*/),(C)->_current_type/*4*/);
}
/*FI]*/
}
T0* r335start_position(T335* C){
T0* R=NULL;
R=r289start_position((T289*)((C)->_base_feature/*32*/));
return R;
}
/*No:RUN_FEATURE_4.require_assertion*/
/*No:RUN_FEATURE_4.clients_memory*/
/*No:RUN_FEATURE_4.ucs_not_computed*/
/*No:RUN_FEATURE_4.current_type*/
void r335add_client(T335* C,T0* a1){
T2 _i=0;
/*[IF*/
if(((C)->_actuals_clients/*12*/)==((void*)(NULL))){
{T321*n=malloc(sizeof(*n));
*n=M321;
r321with_capacity(n,4);
C->_actuals_clients=(T0*)n;
}
r321add_last((T321*)((C)->_actuals_clients/*12*/),a1);
}
else{
_i=r321fast_index_of((T321*)((C)->_actuals_clients/*12*/),a1);
/*[IF*/
if((_i)>(((T321*)((C)->_actuals_clients/*12*/))->_upper/*8*/)){
r321add_last((T321*)((C)->_actuals_clients/*12*/),a1);
}
/*FI]*/
}
/*FI]*/
r310add_client((T310*)(r335run_class(C)),a1);
}
T0* r335run_class(T335* C){
T0* R=NULL;
R=X46run_class((C)->_current_type/*4*/);
return R;
}
/*No:RUN_FEATURE_4.result_type*/
/*No:RUN_FEATURE_4.base_feature*/
/*No:RUN_FEATURE_4.ensure_assertion*/
void r335make(T335* C,T0* a1,T0* a2,T0* a3){
C->_current_type=a1;
C->_name=a2;
C->_base_feature=a3;
/*[IRF3.5add_rf*/r317put(((T317*)(((T310*)(r335run_class(C)))->_feature_dictionary/*24*/)),(T0*)C,X77to_key(a2));
/*]*/
r59incr_magic_count((T59*)(oBC11small_eiffel));
C->_use_current_state=15;
r59push((T59*)(oBC11small_eiffel),(T0*)C);
r335initialize(C);
r59pop((T59*)(oBC11small_eiffel));
}
/*No:RUN_FEATURE_4.routine_body*/
/*No:RUN_FEATURE_4.name*/
/*No:RUN_FEATURE_4.local_vars*/
T2 r335arg_count(T335* C){
T2 R=0;
/*[IF*/
if(((C)->_arguments/*36*/)!=((void*)(NULL))){
R=/*(IRF4.6count*/(((T179*)(((T175*)((C)->_arguments/*36*/))->_flat_list/*8*/)))->_upper/*12*//*)*/;
}
/*FI]*/
return R;
}
T0* r335clients(T335* C){
T0* R=NULL;
T0* _bfbc=NULL;
T0* _bc=NULL;
/*[IF*/
if(((C)->_clients_memory/*8*/)==((void*)(NULL))){
_bc=X46base_class((C)->_current_type/*4*/);
_bfbc=((T289*)((C)->_base_feature/*32*/))->_base_class/*4*/;
/*[IF*/
if((_bc)==((void*)(_bfbc))){
R=((T289*)((C)->_base_feature/*32*/))->_clients/*20*/;
}
else{
R=r22clients_for(((T22*)_bc),(C)->_name/*16*/);
}
/*FI]*/
C->_clients_memory=R;
}
else{
R=(C)->_clients_memory/*8*/;
}
/*FI]*/
return R;
}
T6 r335is_exported_in(T335* C,T0* a1){
T6 R=0;
R=r94gives_permission_to((T94*)(r335clients(C)),a1);
return R;
}
/*No:CST_ATT_REAL.base_class*/
/*No:CST_ATT_REAL.value_mem*/
T0* r199start_position(T199* C){
T0* R=NULL;
R=X77start_position(/*(IRF4.6first_name*/r79item(((T79*)((C)->_names/*8*/)),1)/*)*/);
return R;
}
T6 r199is_merge_with(T199* C,T0* a1,T0* a2){
T6 R=0;
R=1;
/*[IF*/
if(((C)->_result_type/*20*/)!=((void*)(X87result_type(a1)))){
/*[IF*/
if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X87result_type(a1))==((void*)(NULL)))){
R=0;
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X87arguments(a1)))){
/*[IF*/
{/*AT*/R=0;
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(R){
/*[IF*/
if(((C)->_result_type/*20*/)!=((void*)(NULL))){
R=X46is_a_in((C)->_result_type/*20*/,X87result_type(a1),a2);
}
/*FI]*/
/*[IF*/
if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
R=r175is_a_in((T175*)(/*(IRF4.1arguments*/NULL/*)*/),X87arguments(a1),a2);
}
/*FI]*/
/*[IF*/
if(!(R)){
R=1;
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
/*]*/
/*]*/
/*[IF*/
if(((C)->_result_type/*20*/)!=((void*)(NULL))){
R=X46is_a_in(X87result_type(a1),(C)->_result_type/*20*/,a2);
}
/*FI]*/
/*[IF*/
if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
R=r175is_a_in((T175*)(X87arguments(a1)),/*(IRF4.1arguments*/NULL/*)*/,a2);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(R){
r199merge_header_comments(C,a1);
}
/*FI]*/
return R;
}
/*No:CST_ATT_REAL.first_name*/
/*No:CST_ATT_REAL.em1*/
/*No:CST_ATT_REAL.header_comment*/
/*No:CST_ATT_REAL.names*/
/*No:CST_ATT_REAL.result_type*/
/*No:CST_ATT_REAL.code_require*/
/*No:CST_ATT_REAL.make_e_feature*/
void r199add_into(T199* C,T0* a1){
T0* _fn=NULL;
T2 _i=0;
C->_base_class=r69base_class((T69*)(X77start_position(r79item((T79*)((C)->_names/*8*/),1))));
_i=1;
while (!((_i)>(r79count((T79*)((C)->_names/*8*/))))) {
_fn=r79item((T79*)((C)->_names/*8*/),_i);
/*[IF*/
if(r86has(((T86*)a1),X77to_key(_fn))){
_fn=/*X87first_name*/((T0*)/*(IRF4.6first_name*/r79item(((T79*)(((T187*)(r86at(((T86*)a1),X77to_key(_fn))))->_names/*8*/)),1)/*)*/);
r67add_position(X77start_position(_fn));
r67add_position(X77start_position(r79item((T79*)((C)->_names/*8*/),_i)));
r67error((T67*)(oBC11eh),((T0*)ms87_41905));
/*[IRF3.6append*/{T0* b1=X77to_string(_fn);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
r67error((T67*)(oBC11eh),((T0*)ms12_47));
}
else{
r86put(((T86*)a1),(T0*)C,X77to_key(_fn));
}
/*FI]*/
_i=(_i)+(1);
}
}
T6 r199can_hide(T199* C,T0* a1,T0* a2){
T6 R=0;
/*[IF*/
if(((C)->_result_type/*20*/)!=((void*)(X87result_type(a1)))){
/*[IF*/
if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X87result_type(a1))==((void*)(NULL)))){
r67add_position(X87start_position(a1));
r199error(r199start_position(C),((T0*)ms87_64647));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X87arguments(a1)))){
/*[IF*/
{/*AT*/r67add_position(X87start_position(a1));
r199error(r199start_position(C),((T0*)ms87_83182));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
/*[IF*/
if(((C)->_result_type/*20*/)!=((void*)(NULL))){
/*[IF*/
if(!(X46is_a_in((C)->_result_type/*20*/,X87result_type(a1),a2))){
/*[IRF3.6append*/{T0* b1=((T0*)ms87_54285);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X46run_time_mark((((T310*)a2))->_current_type/*0*/);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
r67error((T67*)(oBC11eh),((T0*)ms12_47));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*FI]*/
R=(/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0);
/*[IF*/
if(R){
r199merge_header_comments(C,a1);
}
/*FI]*/
return R;
}
/*No:CST_ATT_REAL.ensure_assertion*/
T0* r199try_to_undefine(T199* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _fn2=NULL;
r67add_position(X77start_position(a1));
_fn2=r79feature_name((T79*)((C)->_names/*8*/),X77to_key(a1));
/*[IF*/
if((_fn2)!=((void*)(NULL))){
X77undefine_in(_fn2,a2);
}
/*FI]*/
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
/*]*/
/*]*/
R=r199try_to_undefine_aux(C,a1,a2);
/*[IF*/
if((R)!=((void*)(NULL))){
/*X270set_clients*//*[IRF3.3set_clients*/((((T273*)(((T273*)R))))->_clients)=((C)->_clients/*16*/);
/*]*/
r199merge_header_comments(C,R);
}
else{
r22fatal_undefine(((T22*)a2),a1);
}
/*FI]*/
return R;
}
/*No:CST_ATT_REAL.is_deferred*/
/*No:CST_ATT_REAL.set_clients*/
/*No:CST_ATT_REAL.value*/
/*No:CST_ATT_REAL.nb_errors*/
T0* r199to_run_feature(T199* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _rc=NULL;
_rc=X46run_class(a1);
R=r310at(((T310*)_rc),a2);
if(NULL!=(R))switch(((T0*)R)->id) {
case 326:
break;
default:
R=NULL;
};/*[IF*/
if((R)==((void*)(NULL))){
{T326*n=malloc(sizeof(*n));
*n=M326;
r326make(n,a1,a2,(T0*)C);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
void r199merge_header_comments(T199* C,T0* a1){
/*[IF*/
if(((T59*)(oBC11small_eiffel))->_short_flag/*0*/){
/*[IF*/
if(((C)->_header_comment/*12*/)==((void*)(NULL))){
C->_header_comment=/*X87header_comment*/((T0*)(((T187*)a1))->_header_comment/*12*/);
}
else if((/*X87header_comment*/((T0*)(((T187*)a1))->_header_comment/*12*/))==((void*)(NULL))){
X87set_header_comment(a1,(C)->_header_comment/*12*/);
}
/*FI]*/
}
/*FI]*/
}
/*No:CST_ATT_REAL.arguments*/
/*No:CST_ATT_REAL.require_assertion*/
T0* r199try_to_undefine_aux(T199* C,T0* a1,T0* a2){
T0* R=NULL;
r67add_position(r199start_position(C));
r199error(X77start_position(a1),((T0*)ms189_99414));
r22fatal_undefine(((T22*)a2),a1);
return R;
}
/*No:CST_ATT_REAL.fz_dot*/
void r199error(T0* a1,T0* a2){
r67add_position(a1);
r67error((T67*)(oBC11eh),a2);
}
void r199make(T199* C,T0* a1,T0* a2,T0* a3){
/*[IRF3.3make_e_feature*/((((T199*)(C)))->_names)=(a1);
/*]*/
C->_result_type=a2;
C->_value_mem=a3;
}
void r199collect_for(T2 a1){
T0* _er=NULL;
/*[IF*/
if((a1)==(1)){
_er=/*(IRF4.1require_assertion*/NULL/*)*/;
/*[IF*/
if((_er)!=((void*)(NULL))){
/*[IF*/
if(!(r315fast_has((T315*)(oBC87require_collector),_er))){
r315add_last((T315*)(oBC87require_collector),_er);
}
/*FI]*/
}
/*FI]*/
}
else{
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*FI]*/
}
/*No:CST_ATT_REAL.set_header_comment*/
/*No:CST_ATT_REAL.clients*/
T0* r276run_require(T0* a1){
T0* R=NULL;
T0* _ct=NULL;
T0* _ar=NULL;
T0* _hc=NULL;
T0* _er=NULL;
T0* _r=NULL;
T2 _i=0;
r315clear((T315*)(oBC87require_collector));
_ct=/*X312current_type*/((T0*)(((T326*)a1))->_current_type/*4*/);
r22collect_for((T22*)(X46base_class(_ct)),1,/*X312name*/((T0*)(((T326*)a1))->_name/*16*/));
/*[IF*/
if(!(r315empty((T315*)(oBC87require_collector)))){
_i=1;
while (!((_i)>(((T315*)(oBC87require_collector))->_upper/*8*/))) {
_er=r315item((T315*)(oBC87require_collector),_i);
_hc=(((T272*)_er))->_header_comment/*4*/;
/*[IF*/
if(!(/*(IRF4.7empty*/((((T272*)_er))->_list/*8*/)==(NULL)/*)*/)){
_r=r276runnable((((T272*)_er))->_list/*8*/,_ct,a1);
/*[IF*/
if((_r)!=((void*)(NULL))){
{T272*n=malloc(sizeof(*n));
*n=M272;
r272make_runnable(n,_r,_ct,a1);
_er=(T0*)n;
}
/*[IRF3.3set_header_comment*/((((T272*)(((T272*)_er))))->_header_comment)=(_hc);
/*]*/
/*[IF*/
if((_ar)==((void*)(NULL))){
_ar=se_ma315(1,
_er);
}
else{
r315add_last(((T315*)_ar),_er);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
_i=(_i)+(1);
}
/*[IF*/
if((_ar)!=((void*)(NULL))){
{T314*n=malloc(sizeof(*n));
*n=M314;
/*[IRF3.3make*/((((T314*)(n)))->_list)=(_ar);
/*]*/
R=(T0*)n;
}
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:EXTERNAL_PROCEDURE.base_class*/
void r276set_rescue_compound(T276* C,T0* a1){
/*[IF*/
if((a1)!=((void*)(NULL))){
r67add_position(r204start_position(((T204*)a1)));
}
else{
r67add_position(r276start_position(C));
}
/*FI]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms275_126759);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
r67print_as_fatal_error((T67*)(oBC11eh));
}
T0* r276start_position(T276* C){
T0* R=NULL;
R=X77start_position(/*(IRF4.6first_name*/r79item(((T79*)((C)->_names/*8*/)),1)/*)*/);
return R;
}
T6 r276is_merge_with(T276* C,T0* a1,T0* a2){
T6 R=0;
R=1;
/*[IF*/
if((/*(IRF4.1result_type*/NULL/*)*/)!=((void*)(X87result_type(a1)))){
/*[IF*/
{/*AT*/R=0;
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_arguments/*20*/)!=((void*)(X87arguments(a1)))){
/*[IF*/
if((((C)->_arguments/*20*/)==((void*)(NULL)))||((X87arguments(a1))==((void*)(NULL)))){
R=0;
}
else if((/*(IRF4.6count*/(((T179*)(((T175*)((C)->_arguments/*20*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T179*)(((T175*)(X87arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
R=0;
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(R){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if((R)&&(((C)->_arguments/*20*/)!=((void*)(NULL)))){
R=r175is_a_in((T175*)((C)->_arguments/*20*/),X87arguments(a1),a2);
}
/*FI]*/
/*[IF*/
if(!(R)){
R=1;
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
/*]*/
/*]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if((R)&&(((C)->_arguments/*20*/)!=((void*)(NULL)))){
R=r175is_a_in((T175*)(X87arguments(a1)),(C)->_arguments/*20*/,a2);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(R){
r276merge_header_comments(C,a1);
}
/*FI]*/
return R;
}
T0* r276runnable(T0* a1,T0* a2,T0* a3){
T0* R=NULL;
T0* _a=NULL;
T2 _i=0;
/*[IF*/
if(!(r50empty(((T50*)a1)))){
R=r50twin(((T50*)a1));
_i=(((T50*)R))->_upper/*8*/;
while (!((_i)==(0))) {
r59push((T59*)(oBC11small_eiffel),a3);
_a=r49to_runnable((T49*)(r50item(((T50*)R),_i)),a2);
/*[IF*/
if((_a)==((void*)(NULL))){
r276error(r49start_position((T49*)(r50item(((T50*)R),_i))),((T0*)ms12_14266));
}
else{
/*[IRF3.6put*/{T50* C1=((T50*)R);
T0* b1=_a;
T2 b2=_i;
((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI]*/
r59pop((T59*)(oBC11small_eiffel));
_i=(_i)-(1);
}
}
/*FI]*/
return R;
}
/*No:EXTERNAL_PROCEDURE.first_name*/
/*No:EXTERNAL_PROCEDURE.em1*/
/*No:EXTERNAL_PROCEDURE.header_comment*/
/*No:EXTERNAL_PROCEDURE.names*/
/*No:EXTERNAL_PROCEDURE.fz_03*/
void r276make_external_routine(T276* C,T0* a1,T0* a2){
C->_native=a1;
C->_alias_string=a2;
}
/*No:EXTERNAL_PROCEDURE.result_type*/
/*No:EXTERNAL_PROCEDURE.code_require*/
/*No:EXTERNAL_PROCEDURE.make_e_feature*/
void r276add_into(T276* C,T0* a1){
T0* _fn=NULL;
T2 _i=0;
C->_base_class=r69base_class((T69*)(X77start_position(r79item((T79*)((C)->_names/*8*/),1))));
_i=1;
while (!((_i)>(r79count((T79*)((C)->_names/*8*/))))) {
_fn=r79item((T79*)((C)->_names/*8*/),_i);
/*[IF*/
if(r86has(((T86*)a1),X77to_key(_fn))){
_fn=/*X87first_name*/((T0*)/*(IRF4.6first_name*/r79item(((T79*)(((T187*)(r86at(((T86*)a1),X77to_key(_fn))))->_names/*8*/)),1)/*)*/);
r67add_position(X77start_position(_fn));
r67add_position(X77start_position(r79item((T79*)((C)->_names/*8*/),_i)));
r67error((T67*)(oBC11eh),((T0*)ms87_41905));
/*[IRF3.6append*/{T0* b1=X77to_string(_fn);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
r67error((T67*)(oBC11eh),((T0*)ms12_47));
}
else{
r86put(((T86*)a1),(T0*)C,X77to_key(_fn));
}
/*FI]*/
_i=(_i)+(1);
}
}
T6 r276can_hide(T276* C,T0* a1,T0* a2){
T6 R=0;
/*[IF*/
if((/*(IRF4.1result_type*/NULL/*)*/)!=((void*)(X87result_type(a1)))){
/*[IF*/
{/*AT*/r67add_position(X87start_position(a1));
r276error(r276start_position(C),((T0*)ms87_64647));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_arguments/*20*/)!=((void*)(X87arguments(a1)))){
/*[IF*/
if((((C)->_arguments/*20*/)==((void*)(NULL)))||((X87arguments(a1))==((void*)(NULL)))){
r67add_position(X87start_position(a1));
r276error(r276start_position(C),((T0*)ms87_83182));
}
else if((/*(IRF4.6count*/(((T179*)(((T175*)((C)->_arguments/*20*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T179*)(((T175*)(X87arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
r67add_position(X87start_position(a1));
r276error(r276start_position(C),((T0*)ms87_67155));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
/*[IF*/
if(((C)->_arguments/*20*/)!=((void*)(NULL))){
/*[IF*/
if(!(r175is_a_in((T175*)((C)->_arguments/*20*/),X87arguments(a1),a2))){
r67add_position(X87start_position(a1));
r67add_position(r276start_position(C));
/*[IRF3.6append*/{T0* b1=((T0*)ms87_54285);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X46run_time_mark((((T310*)a2))->_current_type/*0*/);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
r67error((T67*)(oBC11eh),((T0*)ms12_47));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
R=(/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0);
/*[IF*/
if(R){
r276merge_header_comments(C,a1);
}
/*FI]*/
return R;
}
/*No:EXTERNAL_PROCEDURE.ensure_assertion*/
T0* r276run_ensure(T0* a1){
T0* R=NULL;
T0* _ct=NULL;
T0* _r=NULL;
r50clear((T50*)(oBC87assertion_collector));
/*[IRF3.3clear*/{T0* _default_item=NULL;
((((T332*)((T332*)(oBC87header_comment_memory))))->_item)=(_default_item);
}/*]*/
_ct=/*X312current_type*/((T0*)(((T326*)a1))->_current_type/*4*/);
r22collect_for((T22*)(X46base_class(_ct)),2,/*X312name*/((T0*)(((T326*)a1))->_name/*16*/));
_r=r276runnable(oBC87assertion_collector,_ct,a1);
/*[IF*/
if((_r)!=((void*)(NULL))){
{T203*n=malloc(sizeof(*n));
*n=M203;
r203make_runnable(n,_r,_ct,a1);
R=(T0*)n;
}
/*[IRF3.3set_header_comment*/((((T203*)(((T203*)R))))->_header_comment)=(((T332*)(oBC87header_comment_memory))->_item/*0*/);
/*]*/
/*[IRF3.3clear*/{T0* _default_item=NULL;
((((T332*)((T332*)(oBC87header_comment_memory))))->_item)=(_default_item);
}/*]*/
}
/*FI]*/
return R;
}
void r276check_obsolete(T276* C){
/*[IF*/
if(!(((T59*)(oBC11small_eiffel))->_short_flag/*0*/)){
/*[IF*/
if(((C)->_obsolete_mark/*24*/)!=((void*)(NULL))){
/*[IRF3.6append*/{T0* b1=((T0*)ms202_39396);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T158*)((C)->_obsolete_mark/*24*/))->_to_string/*8*/;
r7append((T7*)(oBC67explanation),b1);
}/*]*/
r276warning(r276start_position(C),((T0*)ms12_166));
}
/*FI]*/
}
/*FI]*/
}
T0* r276try_to_undefine(T276* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _fn2=NULL;
r67add_position(X77start_position(a1));
_fn2=r79feature_name((T79*)((C)->_names/*8*/),X77to_key(a1));
/*[IF*/
if((_fn2)!=((void*)(NULL))){
X77undefine_in(_fn2,a2);
}
/*FI]*/
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
/*]*/
/*]*/
R=r276try_to_undefine_aux(C,a1,a2);
/*[IF*/
if((R)!=((void*)(NULL))){
/*X270set_clients*//*[IRF3.3set_clients*/((((T273*)(((T273*)R))))->_clients)=((C)->_clients/*16*/);
/*]*/
r276merge_header_comments(C,R);
}
else{
r22fatal_undefine(((T22*)a2),a1);
}
/*FI]*/
return R;
}
/*No:EXTERNAL_PROCEDURE.is_deferred*/
/*No:EXTERNAL_PROCEDURE.set_clients*/
/*No:EXTERNAL_PROCEDURE.native*/
/*No:EXTERNAL_PROCEDURE.code_ensure*/
/*No:EXTERNAL_PROCEDURE.nb_errors*/
void r276make_routine(T276* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
/*[IRF3.3make_e_feature*/((((T276*)(C)))->_names)=(a1);
/*]*/
C->_header_comment=a4;
C->_arguments=a2;
C->_obsolete_mark=a3;
C->_require_assertion=a5;
}
T0* r276to_run_feature(T276* C,T0* a1,T0* a2){
T0* R=NULL;
r276check_obsolete(C);
{T333*n=malloc(sizeof(*n));
*n=M333;
r333make(n,a1,a2,(T0*)C);
R=(T0*)n;
}
return R;
}
void r276merge_header_comments(T276* C,T0* a1){
/*[IF*/
if(((T59*)(oBC11small_eiffel))->_short_flag/*0*/){
/*[IF*/
if(((C)->_header_comment/*12*/)==((void*)(NULL))){
C->_header_comment=/*X87header_comment*/((T0*)(((T187*)a1))->_header_comment/*12*/);
}
else if((/*X87header_comment*/((T0*)(((T187*)a1))->_header_comment/*12*/))==((void*)(NULL))){
X87set_header_comment(a1,(C)->_header_comment/*12*/);
}
/*FI]*/
}
/*FI]*/
}
/*No:EXTERNAL_PROCEDURE.arguments*/
/*No:EXTERNAL_PROCEDURE.require_assertion*/
void r276warning(T0* a1,T0* a2){
r67add_position(a1);
r67warning((T67*)(oBC11eh),a2);
}
T0* r276try_to_undefine_aux(T276* C,T0* a1,T0* a2){
T0* R=NULL;
{T271*n=malloc(sizeof(*n));
*n=M271;
r271from_effective(n,a1,(C)->_arguments/*20*/,(C)->_require_assertion/*28*/,(C)->_ensure_assertion/*32*/,a2);
R=(T0*)n;
}
return R;
}
/*No:EXTERNAL_PROCEDURE.set_ensure_assertion*/
/*No:EXTERNAL_PROCEDURE.fz_bad_assertion*/
/*No:EXTERNAL_PROCEDURE.fz_dot*/
/*No:EXTERNAL_PROCEDURE.alias_string*/
void r276error(T0* a1,T0* a2){
r67add_position(a1);
r67error((T67*)(oBC11eh),a2);
}
void r276make(T276* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
r276make_routine(C,a1,a2,a3,a4,a5);
r276make_external_routine(C,a6,a7);
}
/*No:EXTERNAL_PROCEDURE.end_comment*/
void r276collect_for(T276* C,T2 a1){
T0* _er=NULL;
/*[IF*/
if((a1)==(1)){
_er=(C)->_require_assertion/*28*/;
/*[IF*/
if((_er)!=((void*)(NULL))){
/*[IF*/
if(!(r315fast_has((T315*)(oBC87require_collector),_er))){
r315add_last((T315*)(oBC87require_collector),_er);
}
/*FI]*/
}
/*FI]*/
}
else{
/*[IF*/
if(((C)->_ensure_assertion/*32*/)!=((void*)(NULL))){
/*[IRF3.3set_item*/((((T332*)((T332*)(oBC87header_comment_memory))))->_item)=(((T203*)((C)->_ensure_assertion/*32*/))->_header_comment/*4*/);
/*]*/
r203add_into((T203*)((C)->_ensure_assertion/*32*/),oBC87assertion_collector);
}
/*FI]*/
}
/*FI]*/
}
void r276set_header_comment(T276* C,T0* a1){
/*[IF*/
if(((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)>(1))){
C->_end_comment=a1;
}
/*FI]*/
}
/*No:EXTERNAL_PROCEDURE.clients*/
/*No:EXTERNAL_PROCEDURE.obsolete_mark*/
/*No:IFTHEN.nb_errors*/
/*No:IFTHEN.expression*/
/*No:IFTHEN.fz_is_not_boolean*/
/*No:IFTHEN.then_compound*/
T0* r214to_runnable(T214* C,T0* a1){
T0* R=NULL;
T0* _t=NULL;
T0* _tc=NULL;
T0* _e=NULL;
/*[IF*/
if(((C)->_current_type/*8*/)==((void*)(NULL))){
C->_current_type=a1;
_e=X53to_runnable((C)->_expression/*0*/,a1);
/*[IF*/
if((_e)==((void*)(NULL))){
r214error(X53start_position((C)->_expression/*0*/),((T0*)ms214_32982));
}
else{
C->_expression=_e;
_t=X53result_type((C)->_expression/*0*/);
/*[IF*/
if(!(X46is_boolean(_t))){
/*[IRF3.6append*/{T0* b1=((T0*)ms214_75563);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
r67add_type(X53result_type((C)->_expression/*0*/),((T0*)ms12_18320));
r67add_position(X53start_position((C)->_expression/*0*/));
r67print_as_error((T67*)(oBC11eh));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_then_compound/*4*/)!=((void*)(NULL))){
_tc=r204to_runnable((T204*)((C)->_then_compound/*4*/),a1);
/*[IF*/
if((_tc)!=((void*)(NULL))){
C->_then_compound=_tc;
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
R=(T0*)C;
}
/*FI]*/
}
else{
{T214*n=malloc(sizeof(*n));
*n=M214;
r214make(n,(C)->_expression/*0*/,(C)->_then_compound/*4*/);
R=(T0*)n;
}
R=r214to_runnable(((T214*)R),a1);
}
/*FI]*/
return R;
}
/*No:IFTHEN.current_type*/
void r214error(T0* a1,T0* a2){
r67add_position(a1);
r67error((T67*)(oBC11eh),a2);
}
void r214make(T214* C,T0* a1,T0* a2){
C->_expression=a1;
C->_then_compound=a2;
}
/*No:CLIENT_LIST.start_position*/
T6 r94gives_permission_to_any(T94* C){
T6 R=0;
/*[IF*/
if(/*(IRF4.7is_omitted*/((C)->_start_position/*0*/)==(NULL)/*)*/){
R=1;
}
else if(((C)->_list/*4*/)==((void*)(NULL))){
}
else{
R=r183gives_permission_to_any((T183*)((C)->_list/*4*/));
}
/*FI]*/
return R;
}
void r94merge(T94* C,T0* a1,T0* a2,T0* a3){
C->_start_position=a1;
{T183*n=malloc(sizeof(*n));
*n=M183;
r183merge(n,a2,a3);
C->_list=(T0*)n;
}
}
/*No:CLIENT_LIST.is_omitted*/
T6 r94gives_permission_to(T94* C,T0* a1){
T6 R=0;
/*[IF*/
if(/*(IRF4.7is_omitted*/((C)->_start_position/*0*/)==(NULL)/*)*/){
R=1;
}
else if(((C)->_list/*4*/)==((void*)(NULL))){
}
else{
R=r183gives_permission_to((T183*)((C)->_list/*4*/),a1);
}
/*FI]*/
/*[IF*/
if(R){
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
/*]*/
/*]*/
}
else{
r67add_position((C)->_start_position/*0*/);
/*[IRF3.6append*/{T0* b1=(((T47*)a1))->_to_string/*0*/;
r7append((T7*)(oBC67explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms94_56885);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
}
/*FI]*/
return R;
}
void r94make(T94* C,T0* a1,T0* a2){
C->_start_position=a1;
C->_list=a2;
}
T0* r94append(T94* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((C)==((void*)(a1)))||(/*(IRF4.7is_omitted*/((C)->_start_position/*0*/)==(NULL)/*)*/)){
R=(T0*)C;
}
else{
/*[IF*/
if(r94gives_permission_to_any(C)){
R=(T0*)C;
}
else{
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
/*]*/
/*]*/
/*[IF*/
if(/*(IRF4.7is_omitted*/((((T94*)a1))->_start_position/*0*/)==(NULL)/*)*/){
R=a1;
}
else if(r94gives_permission_to_any(((T94*)a1))){
R=a1;
}
else{
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
/*]*/
/*]*/
{T94*n=malloc(sizeof(*n));
*n=M94;
r94merge(n,(C)->_start_position/*0*/,(C)->_list/*4*/,(((T94*)a1))->_list/*4*/);
R=(T0*)n;
}
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CLIENT_LIST.omitted*/
T0* r94merge_with(T94* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(r94gives_permission_to_any(C)){
R=(T0*)C;
}
else if(r94gives_permission_to_any(((T94*)a1))){
R=a1;
}
else{
{T94*n=malloc(sizeof(*n));
*n=M94;
r94merge(n,(C)->_start_position/*0*/,(C)->_list/*4*/,(((T94*)a1))->_list/*4*/);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
/*No:CLIENT_LIST.list*/
/*No:FUNCTION.rescue_compound*/
/*No:FUNCTION.use_current_state*/
T0* r289run_require(T0* a1){
T0* R=NULL;
T0* _ct=NULL;
T0* _ar=NULL;
T0* _hc=NULL;
T0* _er=NULL;
T0* _r=NULL;
T2 _i=0;
r315clear((T315*)(oBC87require_collector));
_ct=/*X312current_type*/((T0*)(((T326*)a1))->_current_type/*4*/);
r22collect_for((T22*)(X46base_class(_ct)),1,/*X312name*/((T0*)(((T326*)a1))->_name/*16*/));
/*[IF*/
if(!(r315empty((T315*)(oBC87require_collector)))){
_i=1;
while (!((_i)>(((T315*)(oBC87require_collector))->_upper/*8*/))) {
_er=r315item((T315*)(oBC87require_collector),_i);
_hc=(((T272*)_er))->_header_comment/*4*/;
/*[IF*/
if(!(/*(IRF4.7empty*/((((T272*)_er))->_list/*8*/)==(NULL)/*)*/)){
_r=r289runnable((((T272*)_er))->_list/*8*/,_ct,a1);
/*[IF*/
if((_r)!=((void*)(NULL))){
{T272*n=malloc(sizeof(*n));
*n=M272;
r272make_runnable(n,_r,_ct,a1);
_er=(T0*)n;
}
/*[IRF3.3set_header_comment*/((((T272*)(((T272*)_er))))->_header_comment)=(_hc);
/*]*/
/*[IF*/
if((_ar)==((void*)(NULL))){
_ar=se_ma315(1,
_er);
}
else{
r315add_last(((T315*)_ar),_er);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
_i=(_i)+(1);
}
/*[IF*/
if((_ar)!=((void*)(NULL))){
{T314*n=malloc(sizeof(*n));
*n=M314;
/*[IRF3.3make*/((((T314*)(n)))->_list)=(_ar);
/*]*/
R=(T0*)n;
}
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:FUNCTION.base_class*/
/*No:FUNCTION.set_rescue_compound*/
T0* r289start_position(T289* C){
T0* R=NULL;
R=X77start_position(/*(IRF4.6first_name*/r79item(((T79*)((C)->_names/*8*/)),1)/*)*/);
return R;
}
T6 r289is_merge_with(T289* C,T0* a1,T0* a2){
T6 R=0;
R=1;
/*[IF*/
if(((C)->_result_type/*56*/)!=((void*)(X87result_type(a1)))){
/*[IF*/
if((((C)->_result_type/*56*/)==((void*)(NULL)))||((X87result_type(a1))==((void*)(NULL)))){
R=0;
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_arguments/*24*/)!=((void*)(X87arguments(a1)))){
/*[IF*/
if((((C)->_arguments/*24*/)==((void*)(NULL)))||((X87arguments(a1))==((void*)(NULL)))){
R=0;
}
else if((/*(IRF4.6count*/(((T179*)(((T175*)((C)->_arguments/*24*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T179*)(((T175*)(X87arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
R=0;
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(R){
/*[IF*/
if(((C)->_result_type/*56*/)!=((void*)(NULL))){
R=X46is_a_in((C)->_result_type/*56*/,X87result_type(a1),a2);
}
/*FI]*/
/*[IF*/
if((R)&&(((C)->_arguments/*24*/)!=((void*)(NULL)))){
R=r175is_a_in((T175*)((C)->_arguments/*24*/),X87arguments(a1),a2);
}
/*FI]*/
/*[IF*/
if(!(R)){
R=1;
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
/*]*/
/*]*/
/*[IF*/
if(((C)->_result_type/*56*/)!=((void*)(NULL))){
R=X46is_a_in(X87result_type(a1),(C)->_result_type/*56*/,a2);
}
/*FI]*/
/*[IF*/
if((R)&&(((C)->_arguments/*24*/)!=((void*)(NULL)))){
R=r175is_a_in((T175*)(X87arguments(a1)),(C)->_arguments/*24*/,a2);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(R){
r289merge_header_comments(C,a1);
}
/*FI]*/
return R;
}
T0* r289runnable(T0* a1,T0* a2,T0* a3){
T0* R=NULL;
T0* _a=NULL;
T2 _i=0;
/*[IF*/
if(!(r50empty(((T50*)a1)))){
R=r50twin(((T50*)a1));
_i=(((T50*)R))->_upper/*8*/;
while (!((_i)==(0))) {
r59push((T59*)(oBC11small_eiffel),a3);
_a=r49to_runnable((T49*)(r50item(((T50*)R),_i)),a2);
/*[IF*/
if((_a)==((void*)(NULL))){
r289error(r49start_position((T49*)(r50item(((T50*)R),_i))),((T0*)ms12_14266));
}
else{
/*[IRF3.6put*/{T50* C1=((T50*)R);
T0* b1=_a;
T2 b2=_i;
((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI]*/
r59pop((T59*)(oBC11small_eiffel));
_i=(_i)-(1);
}
}
/*FI]*/
return R;
}
/*No:FUNCTION.not_computed*/
/*No:FUNCTION.first_name*/
/*No:FUNCTION.em1*/
/*No:FUNCTION.header_comment*/
/*No:FUNCTION.names*/
/*No:FUNCTION.fz_03*/
/*No:FUNCTION.result_type*/
/*No:FUNCTION.code_require*/
/*No:FUNCTION.make_e_feature*/
void r289add_into(T289* C,T0* a1){
T0* _fn=NULL;
T2 _i=0;
C->_base_class=r69base_class((T69*)(X77start_position(r79item((T79*)((C)->_names/*8*/),1))));
_i=1;
while (!((_i)>(r79count((T79*)((C)->_names/*8*/))))) {
_fn=r79item((T79*)((C)->_names/*8*/),_i);
/*[IF*/
if(r86has(((T86*)a1),X77to_key(_fn))){
_fn=/*X87first_name*/((T0*)/*(IRF4.6first_name*/r79item(((T79*)(((T187*)(r86at(((T86*)a1),X77to_key(_fn))))->_names/*8*/)),1)/*)*/);
r67add_position(X77start_position(_fn));
r67add_position(X77start_position(r79item((T79*)((C)->_names/*8*/),_i)));
r67error((T67*)(oBC11eh),((T0*)ms87_41905));
/*[IRF3.6append*/{T0* b1=X77to_string(_fn);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
r67error((T67*)(oBC11eh),((T0*)ms12_47));
}
else{
r86put(((T86*)a1),(T0*)C,X77to_key(_fn));
}
/*FI]*/
_i=(_i)+(1);
}
}
T6 r289can_hide(T289* C,T0* a1,T0* a2){
T6 R=0;
/*[IF*/
if(((C)->_result_type/*56*/)!=((void*)(X87result_type(a1)))){
/*[IF*/
if((((C)->_result_type/*56*/)==((void*)(NULL)))||((X87result_type(a1))==((void*)(NULL)))){
r67add_position(X87start_position(a1));
r289error(r289start_position(C),((T0*)ms87_64647));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_arguments/*24*/)!=((void*)(X87arguments(a1)))){
/*[IF*/
if((((C)->_arguments/*24*/)==((void*)(NULL)))||((X87arguments(a1))==((void*)(NULL)))){
r67add_position(X87start_position(a1));
r289error(r289start_position(C),((T0*)ms87_83182));
}
else if((/*(IRF4.6count*/(((T179*)(((T175*)((C)->_arguments/*24*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T179*)(((T175*)(X87arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
r67add_position(X87start_position(a1));
r289error(r289start_position(C),((T0*)ms87_67155));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
/*[IF*/
if(((C)->_result_type/*56*/)!=((void*)(NULL))){
/*[IF*/
if(!(X46is_a_in((C)->_result_type/*56*/,X87result_type(a1),a2))){
/*[IRF3.6append*/{T0* b1=((T0*)ms87_54285);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X46run_time_mark((((T310*)a2))->_current_type/*0*/);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
r67error((T67*)(oBC11eh),((T0*)ms12_47));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
/*[IF*/
if(((C)->_arguments/*24*/)!=((void*)(NULL))){
/*[IF*/
if(!(r175is_a_in((T175*)((C)->_arguments/*24*/),X87arguments(a1),a2))){
r67add_position(X87start_position(a1));
r67add_position(r289start_position(C));
/*[IRF3.6append*/{T0* b1=((T0*)ms87_54285);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X46run_time_mark((((T310*)a2))->_current_type/*0*/);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
r67error((T67*)(oBC11eh),((T0*)ms12_47));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
R=(/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0);
/*[IF*/
if(R){
r289merge_header_comments(C,a1);
}
/*FI]*/
return R;
}
/*No:FUNCTION.ensure_assertion*/
T0* r289run_ensure(T0* a1){
T0* R=NULL;
T0* _ct=NULL;
T0* _r=NULL;
r50clear((T50*)(oBC87assertion_collector));
/*[IRF3.3clear*/{T0* _default_item=NULL;
((((T332*)((T332*)(oBC87header_comment_memory))))->_item)=(_default_item);
}/*]*/
_ct=/*X312current_type*/((T0*)(((T326*)a1))->_current_type/*4*/);
r22collect_for((T22*)(X46base_class(_ct)),2,/*X312name*/((T0*)(((T326*)a1))->_name/*16*/));
_r=r289runnable(oBC87assertion_collector,_ct,a1);
/*[IF*/
if((_r)!=((void*)(NULL))){
{T203*n=malloc(sizeof(*n));
*n=M203;
r203make_runnable(n,_r,_ct,a1);
R=(T0*)n;
}
/*[IRF3.3set_header_comment*/((((T203*)(((T203*)R))))->_header_comment)=(((T332*)(oBC87header_comment_memory))->_item/*0*/);
/*]*/
/*[IRF3.3clear*/{T0* _default_item=NULL;
((((T332*)((T332*)(oBC87header_comment_memory))))->_item)=(_default_item);
}/*]*/
}
/*FI]*/
return R;
}
void r289check_obsolete(T289* C){
/*[IF*/
if(!(((T59*)(oBC11small_eiffel))->_short_flag/*0*/)){
/*[IF*/
if(((C)->_obsolete_mark/*28*/)!=((void*)(NULL))){
/*[IRF3.6append*/{T0* b1=((T0*)ms202_39396);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T158*)((C)->_obsolete_mark/*28*/))->_to_string/*8*/;
r7append((T7*)(oBC67explanation),b1);
}/*]*/
r289warning(r289start_position(C),((T0*)ms12_166));
}
/*FI]*/
}
/*FI]*/
}
T0* r289try_to_undefine(T289* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _fn2=NULL;
r67add_position(X77start_position(a1));
_fn2=r79feature_name((T79*)((C)->_names/*8*/),X77to_key(a1));
/*[IF*/
if((_fn2)!=((void*)(NULL))){
X77undefine_in(_fn2,a2);
}
/*FI]*/
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
/*]*/
/*]*/
R=r289try_to_undefine_aux(C,a1,a2);
/*[IF*/
if((R)!=((void*)(NULL))){
/*X270set_clients*//*[IRF3.3set_clients*/((((T273*)(((T273*)R))))->_clients)=((C)->_clients/*20*/);
/*]*/
r289merge_header_comments(C,R);
}
else{
r22fatal_undefine(((T22*)a2),a1);
}
/*FI]*/
return R;
}
/*No:FUNCTION.is_deferred*/
/*No:FUNCTION.set_clients*/
/*No:FUNCTION.code_ensure*/
/*No:FUNCTION.nb_errors*/
void r289make_routine(T289* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
/*[IRF3.3make_e_feature*/((((T289*)(C)))->_names)=(a1);
/*]*/
C->_header_comment=a4;
C->_arguments=a2;
C->_obsolete_mark=a3;
C->_require_assertion=a5;
}
T0* r289to_run_feature(T289* C,T0* a1,T0* a2){
T0* R=NULL;
r289check_obsolete(C);
{T335*n=malloc(sizeof(*n));
*n=M335;
r335make(n,a1,a2,(T0*)C);
R=(T0*)n;
}
return R;
}
void r289merge_header_comments(T289* C,T0* a1){
/*[IF*/
if(((T59*)(oBC11small_eiffel))->_short_flag/*0*/){
/*[IF*/
if(((C)->_header_comment/*12*/)==((void*)(NULL))){
C->_header_comment=/*X87header_comment*/((T0*)(((T187*)a1))->_header_comment/*12*/);
}
else if((/*X87header_comment*/((T0*)(((T187*)a1))->_header_comment/*12*/))==((void*)(NULL))){
X87set_header_comment(a1,(C)->_header_comment/*12*/);
}
/*FI]*/
}
/*FI]*/
}
/*No:FUNCTION.arguments*/
/*No:FUNCTION.require_assertion*/
void r289make_effective_routine(T289* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
r289make_routine(C,a1,a2,a3,a4,a5);
C->_local_vars=a6;
C->_routine_body=a7;
C->_use_current_state=11;
}
void r289warning(T0* a1,T0* a2){
r67add_position(a1);
r67warning((T67*)(oBC11eh),a2);
}
T0* r289try_to_undefine_aux(T289* C,T0* a1,T0* a2){
T0* R=NULL;
{T273*n=malloc(sizeof(*n));
*n=M273;
r273from_effective(n,a1,(C)->_arguments/*24*/,(C)->_result_type/*56*/,(C)->_require_assertion/*32*/,(C)->_ensure_assertion/*36*/,a2);
R=(T0*)n;
}
return R;
}
/*No:FUNCTION.set_ensure_assertion*/
/*No:FUNCTION.fz_bad_assertion*/
/*No:FUNCTION.fz_dot*/
void r289error(T0* a1,T0* a2){
r67add_position(a1);
r67error((T67*)(oBC11eh),a2);
}
void r289make(T289* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7,T0* a8){
r289make_effective_routine(C,a1,a2,a4,a5,a6,a7,a8);
C->_result_type=a3;
}
/*No:FUNCTION.routine_body*/
/*No:FUNCTION.end_comment*/
void r289collect_for(T289* C,T2 a1){
T0* _er=NULL;
/*[IF*/
if((a1)==(1)){
_er=(C)->_require_assertion/*32*/;
/*[IF*/
if((_er)!=((void*)(NULL))){
/*[IF*/
if(!(r315fast_has((T315*)(oBC87require_collector),_er))){
r315add_last((T315*)(oBC87require_collector),_er);
}
/*FI]*/
}
/*FI]*/
}
else{
/*[IF*/
if(((C)->_ensure_assertion/*36*/)!=((void*)(NULL))){
/*[IRF3.3set_item*/((((T332*)((T332*)(oBC87header_comment_memory))))->_item)=(((T203*)((C)->_ensure_assertion/*36*/))->_header_comment/*4*/);
/*]*/
r203add_into((T203*)((C)->_ensure_assertion/*36*/),oBC87assertion_collector);
}
/*FI]*/
}
/*FI]*/
}
/*No:FUNCTION.local_vars*/
void r289set_header_comment(T289* C,T0* a1){
/*[IF*/
if(((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)>(1))){
C->_end_comment=a1;
}
/*FI]*/
}
/*No:FUNCTION.clients*/
/*No:FUNCTION.obsolete_mark*/